package org.jeecg.modules.ws.entity;

import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @Description: 员工档案
 * @Author: jeecg-boot
 * @Date:   2025-02-27
 * @Version: V1.0
 */
@Data
@TableName("ws_employee")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="ws_employee对象", description="员工档案")
public class WsEmployee {

	/**ID*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "ID")
	private String id;
	/**姓名*/
	@Excel(name = "姓名", width = 15)
    @ApiModelProperty(value = "姓名")
	private String name;
	/**公司名称*/
	@Excel(name = "公司名称", width = 15)
    @ApiModelProperty(value = "公司名称")
	private String companyName;
	/**公司级别（集团、二级公司）*/
	@Excel(name = "公司级别（集团、二级公司）", width = 15)
    @ApiModelProperty(value = "公司级别（集团、二级公司）")
	private String companyType;
	/**部门*/
	@Excel(name = "部门", width = 15)
    @ApiModelProperty(value = "部门")
	private String depart;
	/**岗位*/
	@Excel(name = "岗位", width = 15)
    @ApiModelProperty(value = "岗位")
	private String post;
	/**职级*/
	@Excel(name = "职级", width = 15)
    @ApiModelProperty(value = "职级")
	private String jobLevel;
	/**在职（是、否）*/
	@Excel(name = "在职（是、否）", width = 15)
    @ApiModelProperty(value = "在职（是、否）")
	private String status;
	/**身份证号*/
	@Excel(name = "身份证号", width = 15)
    @ApiModelProperty(value = "身份证号")
	private String idNumber;
	/**手机号码*/
	@Excel(name = "手机号码", width = 15)
    @ApiModelProperty(value = "手机号码")
	private String phone;
	/**地址*/
	@Excel(name = "地址", width = 15)
    @ApiModelProperty(value = "地址")
	private String address;
	/**性别*/
	@Excel(name = "性别", width = 15)
    @ApiModelProperty(value = "性别")
	private String sex;
	/**年龄*/
	@Excel(name = "年龄", width = 15)
    @ApiModelProperty(value = "年龄")
	private java.math.BigDecimal age;
	/**出生日期*/
	@Excel(name = "出生日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "出生日期")
	private Date birthDate;
	/**生日*/
	@Excel(name = "生日", width = 15)
    @ApiModelProperty(value = "生日")
	private String birthday;
	/**民族*/
	@Excel(name = "民族", width = 15)
    @ApiModelProperty(value = "民族")
	private String nation;
	/**籍贯*/
	@Excel(name = "籍贯", width = 15)
    @ApiModelProperty(value = "籍贯")
	private String nativePlace;
	/**出生地*/
	@Excel(name = "出生地", width = 15)
    @ApiModelProperty(value = "出生地")
	private String birthPlace;
	/**户口所在地*/
	@Excel(name = "户口所在地", width = 15)
    @ApiModelProperty(value = "户口所在地")
	private String domicile;
	/**身份证所在地*/
	@Excel(name = "身份证所在地", width = 15)
    @ApiModelProperty(value = "身份证所在地")
	private String identityCardLocation;
	/**户口类别*/
	@Excel(name = "户口类别", width = 15)
    @ApiModelProperty(value = "户口类别")
	private String accountType;
	/**政治面貌*/
	@Excel(name = "政治面貌", width = 15)
    @ApiModelProperty(value = "政治面貌")
	private String politicalStatus;
	/**婚育状况*/
	@Excel(name = "婚育状况", width = 15)
    @ApiModelProperty(value = "婚育状况")
	private String maritalStatus;
	/**紧急联系人*/
	@Excel(name = "紧急联系人", width = 15)
    @ApiModelProperty(value = "紧急联系人")
	private String emergencyContact;
	/**紧急联系人电话*/
	@Excel(name = "紧急联系人电话", width = 15)
    @ApiModelProperty(value = "紧急联系人电话")
	private java.math.BigDecimal emergencyContactNumber;
	/**紧急联系人关系*/
	@Excel(name = "紧急联系人关系", width = 15)
    @ApiModelProperty(value = "紧急联系人关系")
	private String emergencyContactRelationship;
	/**最高学历*/
	@Excel(name = "最高学历", width = 15)
    @ApiModelProperty(value = "最高学历")
	private String highestDegree1;
	/**在职学历*/
	@Excel(name = "在职学历", width = 15)
    @ApiModelProperty(value = "在职学历")
	private String education;
	/**毕业学校*/
	@Excel(name = "毕业学校", width = 15)
    @ApiModelProperty(value = "毕业学校")
	private String graduationSchool1;
	/**在职学历专业*/
	@Excel(name = "在职学历专业", width = 15)
    @ApiModelProperty(value = "在职学历专业")
	private String educationMajor1;
	/**毕业时间*/
	@Excel(name = "毕业时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "毕业时间")
	private Date graduationTime1;
	/**最高学历(全日制)*/
	@Excel(name = "最高学历(全日制)", width = 15)
    @ApiModelProperty(value = "最高学历(全日制)")
	private String highestDegree2;
	/**毕业学校(全日制)*/
	@Excel(name = "毕业学校(全日制)", width = 15)
    @ApiModelProperty(value = "毕业学校(全日制)")
	private String graduationSchool2;
	/**专业(全日制)*/
	@Excel(name = "专业(全日制)", width = 15)
    @ApiModelProperty(value = "专业(全日制)")
	private String educationMajor2;
	/**毕业时间(全日制)*/
	@Excel(name = "毕业时间(全日制)", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "毕业时间(全日制)")
	private Date graduationTime2;
	/**首次工作时间*/
	@Excel(name = "首次工作时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "首次工作时间")
	private Date firstWorkingHour;
	/**工龄*/
	@Excel(name = "工龄", width = 15)
    @ApiModelProperty(value = "工龄")
	private java.math.BigDecimal workingYears;
	/**入职时间*/
	@Excel(name = "入职时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "入职时间")
	private Date hiredate;
	/**司龄*/
	@Excel(name = "司龄", width = 15)
    @ApiModelProperty(value = "司龄")
	private java.math.BigDecimal aSurname;
	/**劳动合同结束时间*/
	@Excel(name = "劳动合同结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "劳动合同结束时间")
	private Date contractEndTime;
	/**职称*/
	@Excel(name = "职称", width = 15)
    @ApiModelProperty(value = "职称")
	private String vocationalQualification;
	/**创建时间*/
	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**更新时间*/
	@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
	private Date updateTime;

	/**入职时间开始*/
	@Excel(name = "入职时间开始", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "入职时间开始")
	@TableField(exist = false)
	private Date hiredateStart;

	/**入职时间结束*/
	@Excel(name = "入职时间结束", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "入职时间结束")
	@TableField(exist = false)
	private Date hiredateEnd;
}
